<script>
    export default {
        data() {
            return {
                
            }
        },

        onLaunch: function (options) {
           
        },

         onShow: function (options) {
            this.globalData.useScenes = options.scene
            let _self = this;
            wx.getSystemInfo({
                success: res => {
                    _self.globalData.system = res.system
                    _self.globalData.screenWidth = res.screenWidth * 2
                    //全面屏手机
                    if (res.model.search('iPhone X') != -1 ||
                        res.model.search('iPhone 11') != -1 ||
                        (res.model.search('unknown') != -1 && res.platform == 'ios') ||
                        res.platform == 'ios') {
                        _self.globalData.isIphonex = true
                    }
                }
            })
            // 验证码 小程序跳转
            // 解决各类回调的兼容问题
            if (!this.globalData.captchaTicketExpire) this.globalData.captchaTicketExpire = {};

            if (options.scene === 1038 && options.referrerInfo.appId === 'wx5a3a7366fd07e119') {
                const result = options.referrerInfo.extraData;
                if (result.ret === 0) {
                    const ticket = result.ticket;
                    if (!this.globalData.captchaTicketExpire[ticket]) {
                        this.globalData.captchaResult = result;
                        this.globalData.captchaTicketExpire[ticket] = true;
                    }
                } else {
                    // 用户关闭了验证码
                }
            }
        },

        
        onHide() {
           
        },

        methods: {
            /**
            * watch 监听器
            * obj  监听对象
            * target 监听对象里的key
            * _socketData 是 Object.defineProperty 自定义属性值
            * 
            * 示例：页面方法 methods  onWatchGlobalData, 监听 globalData 的某个值变化
            *   
            *   target监听的值
            *   onCallBacK 回调函数
            *   onWatchGlobalData() {
            *    let _this = this, target = 'socketData', onCallBack = _this.watchCallBack
            *    getApp().watch(onCallBack, target)
            *   },
            */
            watch: function (method, target) {
                var obj = this.globalData;
                Object.defineProperty(obj, target, {
                    configurable: true,
                    enumerable: true,
                    set: function (value) {
                        this._socketData = value;
                        method(value);
                    },
                    get: function () {
                        // 可以在这里打印一些东西，然后在其他界面调用getApp().globalData.socketData的时候，这里就会执行。
                        return this._socketData
                    }
                })
            },


            // 小程序版本更新
            autoUpdate () {
                var self = this
                if (wx.canIUse('getUpdateManager')) {
                    const updateManager = wx.getUpdateManager()
                    // 检查小程序是否有新版本发布
                    updateManager.onCheckForUpdate(function (res) {
                        // 请求完新版本的信息回调
                        if (res.hasUpdate) {
                            wx.showModal({
                                title: '更新提示',
                                content: '检查到新版本，是否下载新版本并重启小程序？',
                                success: function (res) {
                                    if (res.confirm) {
                                        // 下载
                                        self.downloadAndUpdate(updateManager)
                                    } else if (res.cancel) {
                                        // 点击取消，做强制更新操作
                                        wx.showModal({
                                            title: '温馨提示',
                                            content: '必须强制更新哦，旧版本无法正常使用',
                                            showCancel: false,
                                            confirmText: '确定更新',
                                            success: function (res) {
                                                if (res.confirm) {
                                                    // 再次调用下载，并重启
                                                    self.downloadAndUpdate(updateManager)
                                                }
                                            }
                                        })
                                    }
                                }
                            })
                        }
                    })
                } else {
                    wx.showModal({
                        title: '提示',
                        content: '当前微信版本过低，无法使用该功能，请升级后重试。'
                    })
                }
            },

            // 下载新版本并重启
            downloadAndUpdate(updateManager) {
                var self = this
                wx.showLoading();
                // 监听小程序有版本更新事件，客户端主动触发
                updateManager.onUpdateReady(function () {
                    wx.hideLoading();
                    // 新版本下载好，调用applyUpdate
                    updateManager.applyUpdate()
                })
                // 监听小程序更新失败事件
                updateManager.onUpdateFailed(function () {
                    wx.showModal({
                        title: '已经有新版了哦',
                        content: '请你删除当前小程序，进行升级哦'
                    })
                })
            }
        },

        globalData: {
           
            _socketData: null,
            isIphonex:false,

            // 验证码
            captchaTicketExpire: {},
            captchaResult: {},
            screenWidth: null,

            useScenes: null,      // 小程序打开场景
            system:null,            // 手机系统
        }
    }
</script>

<style>
    /*每个页面公共css */
    @import './common/css/common.css';
    @import '/common/css/animate.css';
    @import "/wxcomponents/vant-weapp/common/index.wxss";
    @import "/common/fonts/iconfont.css";
    page {
        width: 100%;
        height: 100%;
    }

    ::-webkit-scrollbar {
        display: none;
        width: 0 !important;
        height: 0 !important;
        -webkit-appearance: none;
        background: transparent;
    }
</style>